package com.redsoft.spirit.dao;

import java.util.List;

import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import com.redsoft.spirit.entity.Role;

/**
 * 角色管理的DAO类
 * 
 * <pre>
 * 角色管理的DAO类
 * </pre>
 * 
 * @author 杨雷
 * @since 1.0
 */
public interface RoleRepository extends BaseRepository<Role, String>{

	/**
	 * 根据ID查询一条角色记录
	 * 
	 * @param id
	 * @return
	 */
	Role findById(String id);

	/**
	 * 根据ID删除一条角色记录
	 * 
	 * @param id
	 */
	void deleteById(String id);

	/**
	 * 批量删除角色
	 * 
	 * @param list
	 */
	@Modifying
	@Query("delete from Role r where r.id in ?1")
	void deleteByIds(List<String> list);

	@Query("select r from Role r where r.id in (select ra.roleId from RoleAccount ra where ra.accountId = ?1)")
	List<Role> getRoleListByUserId(String userId);
	
	List<Role> findByDeptId(String deptId);
}
